package com.asialjim.wechat.official.api.qrcode;

import com.asialjim.wechat.apiservice.ApiRequest;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;

import java.io.Serializable;

/**
 * <h1><em>ASIAL JIM JAVA DOC</em></h1><hr/>
 * <h2>CLASS DESCRIPTION <i>[ NAME: GetQrCodeTicketApiRequest ]</i></h2><strong>
 * <p> get qrcode ticket request
 * </strong><p><p><em>Copyright &copy; Asial Jim Co., LTD</em><hr/>
 *
 * @author Asial Jim &nbsp;&nbsp; <span>Email:<a href="mailto:asialjim@hotmail.com">asialjim@hotmail.com</a> &nbsp;&nbsp; <a href="asialjim@qq.com">asialjim@qq.com</a></span>
 * @version 1.0.0
 * @since 2021/3/31   &nbsp;&nbsp; JDK 8
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class GetQrCodeTicketApiRequest extends ApiRequest {

    @Data
    public static class BodyParam implements ApiRequest.RequestBodyParam{

        @JsonProperty("expire_seconds")
        private Integer expireSeconds;

        @JsonProperty("action_name")
        private String actionName;

        @JsonProperty("action_info")
        private ActionInfo actionInfo;
    }

    @Data
    @AllArgsConstructor
    public static class ActionInfo implements Serializable{
        private static final long serialVersionUID = 2604520375906633214L;
        private Scene scene;
    }


    @Data
    public static class Scene implements Serializable {
        private static final long serialVersionUID = -7353280290065769354L;

        @JsonProperty("scene_str")
        private String sceneStr;

        @JsonProperty("scene_id")
        private Integer sceneId;
    }
}